package org.seedltd.upms.service.sys;

import org.seedltd.core.base.BaseCacheService;
import org.seedltd.core.base.BasePage;
import org.seedltd.upms.model.sys.entity.SysUser;
import org.seedltd.upms.model.sys.form.SysUserForm;
import org.seedltd.upms.model.sys.form.SysUserSearchForm;
import org.seedltd.upms.model.sys.vo.SysUserVO;

import java.util.Set;

/**
 * 用户管理带缓存业务接口
 *
 * @author laizuan
 * @version 1.0
 * @since 2021/07/19
 */
public interface SysUserService extends BaseCacheService<SysUser, SysUserForm> {

    /**
     * 翻页查询
     *
     * @param searchForm 搜索条件
     */
    BasePage<SysUserVO> page(SysUserSearchForm searchForm);

    /**
     * 修改最后一次登入时间
     *
     * @param id
     */
    boolean updateLastLoginTime(Long id);

    /**
     * 获取用户的角色主键集合
     *
     * @param userId 用户主键
     * @return
     */
    Set<Long> listUserRoleByUserId(Long userId);


    /**
     * 获取用户的部门主键集合
     *
     * @param userId 用户主键
     * @return
     */
    Set<Long> listUserDeptByUserId(Long userId);

    /**
     * 修改用户状态
     * @param userId 用户主键
     * @param status 需要修改的状态
     * @return
     */
    boolean updateUserStatusById(Long userId, Integer status);
}